home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / xlisp2.arc / XLGLOB.C < prev    next >
Text File  |  1985-01-01  |  2KB  |  63 lines

  1. /* xlglobals - xlisp global variables */
  2.  
  3. #include "xlisp.h"
  4.  
  5. /* symbols */
  6. NODE *true = NULL;
  7. NODE *s_quote = NULL, *s_function = NULL;
  8. NODE *s_bquote = NULL, *s_comma = NULL, *s_comat = NULL;
  9. NODE *s_evalhook = NULL, *s_applyhook = NULL;
  10. NODE *s_lambda = NULL, *s_macro = NULL;
  11. NODE *s_stdin = NULL, *s_stdout = NULL;
  12. NODE *s_tracenable = NULL, *s_tracelimit = NULL, *s_breakenable = NULL;
  13. NODE *s_continue = NULL, *s_quit = NULL;
  14. NODE *s_car = NULL, *s_cdr = NULL;
  15. NODE *s_get = NULL, *s_svalue = NULL, *s_splist = NULL;
  16. NODE *s_eql = NULL, *k_test = NULL, *k_tnot = NULL;
  17. NODE *k_optional = NULL, *k_rest = NULL, *k_aux = NULL;
  18. NODE *a_subr = NULL, *a_fsubr = NULL;
  19. NODE *a_list = NULL, *a_sym = NULL, *a_int = NULL;
  20. NODE *a_str = NULL, *a_obj = NULL, *a_fptr = NULL;
  21. NODE *oblist = NULL, *s_unbound = NULL;
  22.  
  23. /* evaluation variables */
  24. NODE *xlstack = NULL;
  25. NODE *xlenv = NULL;
  26. NODE *xlnewenv = NULL;
  27.  
  28. /* exception handling variables */
  29. CONTEXT *xlcontext = NULL;    /* current exception handler */
  30. NODE *xlvalue = NULL;        /* exception value */
  31.  
  32. /* debugging variables */
  33. int xldebug = 0;        /* debug level */
  34. int xltrace = -1;        /* trace stack pointer */
  35. NODE **trace_stack = NULL;    /* trace stack */
  36.  
  37. /* gensym variables */
  38. char gsprefix[STRMAX+1] = { 'G',0 };    /* gensym prefix string */
  39. int gsnumber = 1;        /* gensym number */
  40.  
  41. /* i/o variables */
  42. int xlplevel = 0;        /* prompt nesting level */
  43. int xlfsize = 0;        /* flat size of current print call */
  44. int prompt = TRUE;        /* input prompt flag */
  45.  
  46. /* dynamic memory variables */
  47. long total = 0L;        /* total memory in use */
  48. int anodes = 0;            /* number of nodes to allocate */
  49. int nnodes = 0;            /* number of nodes allocated */
  50. int nsegs = 0;            /* number of segments allocated */
  51. int nfree = 0;            /* number of nodes free */
  52. int gccalls = 0;        /* number of gc calls */
  53. struct segment *segs = NULL;    /* list of allocated segments */
  54. NODE *fnodes = NULL;        /* list of free nodes */
  55.  
  56. /* object programming variables */
  57. NODE *self = NULL, *class = NULL, *object = NULL;
  58. NODE *new = NULL, *isnew = NULL, *msgcls = NULL, *msgclass = NULL;
  59. int varcnt = 0;
  60.  
  61. /* general purpose string buffer */
  62. char buf[STRMAX+1] = 0;
  63.